# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 16:08:20 2023

@author: skunk69
"""

import json

chinese_name = u'自杀态度问卷'
english_name = 'Suicide Attitude Questionnaire'
abbreviation = 'SAQ'
category = u'应激及相关行为量表'

outline = u"""有关社会态度与行为之间关系的比较一致的看法是：态度测量越具体，与行为的关系越大。所以，作为以预防自杀为目的的自杀态度研究中，所测量的态度应该更加具体与全面，这样才能对自杀预防工作提供更加翔实与具体的资料。
肖水源等在1999年编制了《自杀态度问卷》（Suicide Attitude Questionnaire，SAQ），包括了对自杀行为性质、对自杀者（包括自杀死亡者和自杀未遂者）、对自杀者家属和对安乐死态度四个维度。"""

instruction = u"""本问卷旨在了解国人对自杀的态度，以期为我国的自杀预防工作提供资料和指导。请在问题之后，选择从完全赞同到完全不赞同的态度。"""

with open('SAQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.')
    items[key] = value.strip()

reverse_items = [1,3,7,8,10,11,12,14,15,18,20,22,28]
scales = [u'对自杀行为的态度',u'对自杀者的态度',u'对自杀者家属的态度',u'对安乐死的态度']
scales_items = [
    [1,7,12,17,19,22,23,26,29],# 对自杀行为的态度
    [2,3,8,9,13,14,18,20,24,25],# 对自杀者的态度
    [4,6,10,15,28],# 对自杀者家属的态度
    [5,11,16,21,27],# 对安乐死的态度
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,30)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'完全赞同',u'赞同',u'中立',u'不赞同',u'完全不赞同']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《自杀态度问卷》属于一个自评量表。"""

reliability = u"""样本来源于律师、佛教徒和医务人员群体。研究表明，量表各维度的内部一致性系数和重测信度比较理想。"""
validity = u"""在内容效度方面，确证所有条目都能准确表达所要求的内容。在结构效度方面，采用因子分析方法检验，结果表明量表的结构效度良好。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，然后将各维度题目相加得到各维度总分。将各维度总分除以该维度的条目数即为各维度平均分。维度分的最后分值在1~5分。
将对自杀的态度划分为三部分：小于等于2.5分，被认为对自杀持肯定、认可、理解和宽容的态度；2.5~3.5分，矛盾或中立状态；大于等于3.5分，被认为对自杀持反对、否定、排斥和歧视态度。"""

applications = u"""实际应用效果有待进一步的后续研究。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)